package models

import (
	"WeChatwebversion/utils"
	"context"
	"fmt"
	"log"

	"github.com/go-redis/redis/v8"
)

var RedisClient *redis.Client

var	ctx=context.Background()
// 判断redis是否连接上了
func InitializeRedis()  {
	RedisClient = redis.NewClient(&redis.Options{
		Addr:     utils.Redisaddr,
		Password: utils.Redispasswd, // 如果没有设置密码则为空字符串
		DB:       utils.RedisDB,     // 使用默认的数据库
		PoolSize: 100,
	})

	_, err := RedisClient.Ping(ctx).Result()
	if err != nil {
		log.Fatalln(err)
	}
	fmt.Println("Redis配置成功！")
}


//储存注册用户账号ID
func UserNameID(usernameid ,userpassword ,usertoken string)( bool)  {
	exists, err := RedisClient.Exists(ctx, usernameid).Result()
	if err != nil {
		fmt.Println("Failed to check if key exists:", err)
		return true
	}

	// 判断结果
	if exists==0 {
		if err:=RedisClient.SAdd(ctx,usernameid,userpassword,usertoken).Err();err!=nil{
         return true
		}
		return false
	} else {
		return true	
	}
	
	
}
//登录接口查询账号是否存在
func FIndUsernameRedis(user string,passwrod string ) (code int, usertoken string ) {
	members, err := RedisClient.SMembers(ctx, user).Result()
	if err != nil{
		return 1,""
	}
	if len(members)==0{
		return 1,""
	}
	if !utils.Cipherdecoding(passwrod,members[1]) {
		return 3,""
	}
	return 4,members[0]

}
//删除用户账号
func User_Cancel_Account_Redis(username string)error  {
	_,err:=RedisClient.Del(ctx,username).Result()
	if err!=nil{
		return err
	}
	return nil
}